package scheduler;
import java.util.ArrayList;
import shop.Counter;
public class Scheduler {
private ArrayList<Counter> counters;
int[] countClients = new int[100];
private int peakHour;
public Scheduler() {
counters = new ArrayList<Counter>();
}
public void sendClientToCounter(Client c, int arrivalTime) {
countClients[arrivalTime]++;
int minNrOfClients = 9999;
Counter pickedCounter = null;
for (int i = 0; i < counters.size(); i++) {
if (!counters.get(i).isClosed() && counters.get(i).getQueueSize() < minNrOfClients) {
minNrOfClients = counters.get(i).getQueueSize();
pickedCounter = counters.get(i);
}
}
pickedCounter.addClient(c);
}
public void addCounter(Counter c) {
counters.add(c);
}
public void serveClients() {
for (Counter c : counters) {
Thread counterThread = new Thread(c);
counterThread.start();
}
}
public void stopCounters() {
for (Counter c : counters) {
c.setRunning(false);
}
}
public ArrayList<Counter> getCounters() {
return counters;
}
public int getPeakHour() {
int maxClients = -1234;
for (int i = 0; i < countClients.length; i++) {
if (countClients[i] >= maxClients) {
maxClients = countClients[i];
peakHour = i;
}
}
return peakHour;
}
}